package com.kc.business.mapper;

import com.kc.business.domain.order.dto.BizOrderStatisticsByAgeSectionDTO;
import com.kc.business.domain.order.dto.BizOrderUserCardDTO;
import com.kc.business.domain.order.entity.BizOrderStatistics;
import com.kc.business.domain.query.BizOrderStatisticsQuery;
import com.kc.business.domain.vo.BizOrderMoneyDTO;
import com.kc.common.core.dao.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface BizOrderStatisticsMapper extends BaseMapper<BizOrderStatistics> {

    //List<BizOrderStatistics> getList(BizOrderStatisticsQuery bizOrderStatisticsQuery);

    BizOrderStatistics statisticsOrderByData(@Param("date") String date,@Param("dateType") Integer dateType);

    BizOrderStatistics getHistoryData(@Param("date") String date,@Param("dateType") Integer dateType,@Param("bizOrderStatisticsQuery") BizOrderStatisticsQuery bizOrderStatisticsQuery);

    /**
     * 卡戳订单退款统计
     * @param date
     * @return
     */
    BizOrderStatistics getKcRefundStatistics(@Param("date") String date,@Param("dateType") Integer dateType);

    /**
     * 统计用户数
     * @param bizOrderStatistics
     * @return
     */
    List<BizOrderUserCardDTO> getKcRefundUserStatistics(BizOrderStatistics bizOrderStatistics);

    /**
     * 获取订单金额数据
     * @param bizOrderStatisticsQuery
     * @return
     */
    List<BizOrderMoneyDTO> getOrderMoney(BizOrderStatisticsQuery bizOrderStatisticsQuery);
    /**
     * 获取已支付订单金额数据
     * @param bizOrderStatisticsQuery
     * @return
     */
    List<BizOrderMoneyDTO> getPayOrderMoney(BizOrderStatisticsQuery bizOrderStatisticsQuery);

    /**
     * 获取订单金额数据
     * @param bizOrderStatisticsQuery
     * @return
     */
    List<BizOrderMoneyDTO> getOrderMoneyByPlatform(BizOrderStatisticsQuery bizOrderStatisticsQuery);
    /**
     * 获取已支付订单金额数据
     * @param bizOrderStatisticsQuery
     * @return
     */
    List<BizOrderMoneyDTO> getPayOrderMoneyByPlatform(BizOrderStatisticsQuery bizOrderStatisticsQuery);

    /**
     * 按照年龄统计
     * @param bizOrderStatisticsQuery
     * @return
     */
    List<BizOrderStatisticsByAgeSectionDTO> getSaleStatisticsByAge(BizOrderStatisticsQuery bizOrderStatisticsQuery);
}
